Attacker knows that in order to change Gmail Password User must send HTTP Request in the following form
HTTP Request to change Password
https://www.gmail.com/changepassword?newpassword=mynewpassword
User will never have to actually type this in.
Instead Gmail will give him a Form where User can enter new Password.
When User presses Submit this HTTP Request will be generated in the background and sent to the Gmail Web Application.
Session Cookie will be automatically included into every HTTP Request that goes to www.gmailcom to Authenticate User.
So now if Attacker wants to change User's Password he simply needs to create similar Form and persuade Victim to
execute that Form from his Browser so that Session Cookie gets included into HTTP Request.
So Attacker creates Attacker's Web Page with a Form shown below.
When a Victim visits Attacker's Web Page that Web Page gets loaded into Victim's Browser.
When victim presses Submit Button on the Form, that is part of this Web Page, Form will send HTTP Request to Gmail.
Since this HTTP Request is now being sent from Victim's Browser Session Cookie will automatically get included into the
HTTP Request automatically Authenticating the User
Gmail will know that the action came from Authenticated User and will change the Password.
Although HTTP Request came from Authenticated User Gmail doesn't know that User did not want to perform this action.
Attacker.html https://www.gmail.com/changepassword?newpassword=mynewpassword
<form method="GET" action="https://www.gmail.com/changepassword" >
<input type="hidden" name="newpassword" value="mynewpassword" />
</form>